Live migration is the act of moving an actively running virtual machine from one host machine to another, preserving virtual device connectivity and network connections. The guest operating system is intended to be unaware of the migration, though various implementations may induce a fake hotplug event, and performance is impacted variously at different stages over the course of the migration. During a typical migration, a hypervisor uses common techniques to iteratively copy all guest pages, and then just the recently-dirtied subset of guest pages, in order to reduce the blackout period where the guest must be paused for final state copying. However, this technique is not available in computer systems using device assignment, such as computer systems using an input/output memory management unit (IOMMU) to connect devices, because the hypervisor has no knowledge of which pages are dirtied by an assigned device.